/**
 * 测试评分和收藏功能的工具函数
 * 注意：这是开发环境使用的测试函数，生产环境应该移除或禁用
 */

// 测试用户ID（实际项目中应该从认证系统获取）
const TEST_USER_ID = 1;

/**
 * 测试评分功能
 * @param videoId 视频ID
 * @param rating 评分值（1-5）
 */
export async function testRating(videoId: string, rating: number) {
  try {
    console.log(`测试评分功能: 视频 ${videoId}, 评分 ${rating}`);
    
    // 检查评分范围
    if (rating < 1 || rating > 5) {
      console.error('评分必须在1-5之间');
      return false;
    }
    
    // 发送评分请求
    const response = await fetch(`/api/videos/${videoId}?userId=${TEST_USER_ID}`, {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json',
      },
      body: JSON.stringify({ rating }),
    });
    
    const result = await response.json();
    
    if (result.success) {
      console.log('评分成功:', result);
      return true;
    } else {
      console.error('评分失败:', result.message || '未知错误');
      return false;
    }
  } catch (error) {
    console.error('评分测试出错:', error);
    return false;
  }
}

/**
 * 测试收藏功能
 * @param videoId 视频ID
 * @param isFavorite 是否收藏
 */
export async function testFavorite(videoId: string, isFavorite: boolean) {
  try {
    console.log(`测试收藏功能: 视频 ${videoId}, 收藏状态 ${isFavorite ? '已收藏' : '未收藏'}`);
    
    // 发送收藏请求
    const response = await fetch(`/api/videos/${videoId}?userId=${TEST_USER_ID}`, {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json',
      },
      body: JSON.stringify({ isFavorite }),
    });
    
    const result = await response.json();
    
    if (result.success) {
      console.log('收藏操作成功:', result);
      return true;
    } else {
      console.error('收藏操作失败:', result.message || '未知错误');
      return false;
    }
  } catch (error) {
    console.error('收藏测试出错:', error);
    return false;
  }
}

/**
 * 测试获取用户收藏列表
 */
export async function testGetFavorites() {
  try {
    console.log('测试获取用户收藏列表');
    
    const response = await fetch(`/api/favorites?userId=${TEST_USER_ID}`, {
      method: 'GET',
    });
    
    const result = await response.json();
    
    if (result.success) {
      console.log(`获取收藏列表成功，共 ${result.data.length} 个视频`);
      return true;
    } else {
      console.error('获取收藏列表失败:', result.message || '未知错误');
      return false;
    }
  } catch (error) {
    console.error('获取收藏列表测试出错:', error);
    return false;
  }
}

/**
 * 执行完整的功能测试
 */
export async function runFullTest(videoId: string) {
  console.log('开始执行功能测试...');
  
  // 测试评分功能
  const ratingTest = await testRating(videoId, 5);
  
  // 测试收藏功能
  const favoriteTest = await testFavorite(videoId, true);
  
  // 测试获取收藏列表
  const getFavoritesTest = await testGetFavorites();
  
  // 测试取消收藏
  const unfavoriteTest = await testFavorite(videoId, false);
  
  // 输出测试结果
  console.log('\n测试结果汇总:');
  console.log(`评分功能: ${ratingTest ? '✓ 通过' : '✗ 失败'}`);
  console.log(`收藏功能: ${favoriteTest ? '✓ 通过' : '✗ 失败'}`);
  console.log(`获取收藏列表: ${getFavoritesTest ? '✓ 通过' : '✗ 失败'}`);
  console.log(`取消收藏: ${unfavoriteTest ? '✓ 通过' : '✗ 失败'}`);
  
  const allPassed = ratingTest && favoriteTest && getFavoritesTest && unfavoriteTest;
  console.log(`\n总体结果: ${allPassed ? '✓ 所有测试通过' : '✗ 部分测试失败'}`);
  
  return allPassed;
}